<?php

declare(strict_types=1);

namespace Tool\Model;

use think\DbManager;

/**
 * Db管理类.
 */
class Db extends DbManager
{
    private static $dbMap = [];

    public static function make(array $config = [])
    {
        $database = $config['database'];
        if (isset(static::$dbMap[$database])) {
            return static::$dbMap[$database];
        }

        $config = [
            // 默认数据连接标识
            'default' => 'mysql',
            // 数据库连接信息
            'connections' => [
                'mysql' => [
                    // 数据库类型
                    'type' => 'mysql',
                    // 主机地址
                    'hostname' => $config['host'] ?? '127.0.0.1',
                    // 数据库连接端口
                    'hostport' => $config['port'] ?? '3306',
                    // 用户名
                    'username' => $config['username'] ?? 'root',
                    // 数据库密码
                    'password' => $config['password'] ?? 'root',
                    // 数据库名
                    'database' => $config['database'],
                    // 数据库编码默认采用utf8
                    'charset' => 'utf8',
                    // 数据库表前缀
                    'prefix' => $config['prefix'] ?? '',
                    // 数据库调试模式
                    'debug' => false,
                ],
            ],
        ];

        $db = new static();
        $db->setConfig($config);
        static::$dbMap[$database] = $db;

        return $db;
    }

    protected function modelMaker()
    {
    }
}
